Communication networks have long evolved from the plain old telephone networks with homogeneous users to the integrated networks of today. The economy of scale for large networks with simple and objective service requirements is gradually giving way to the economy of scope for networks with fine-grain and subjective quality of service, i.e., QOS, requirements. QOS may be considered in terms of performance (e.g. throughput, delay) constraints, priority (e.g., establishment priority, retention priority) constraints, and resource (e.g. transmission medium, channel security) constraints. Network resources must be efficiently allocated to provide and guarantee a level of network QOS that matches the desired level of user QOS.
A request to establish a connection for supporting a call is issued with user-specified QOS constraints. These QOS constraints are translated into network-specific constraints for routing, which is a mechanism to determine an appropriate path in the network connecting a predetermined pair of end-users. The originator of the request is referred to as the source user, and the other end-user is referred to as the destination user. Resources are then allocated along this path to support the information transfer between the end-users. A network is abstractly represented by a collection of nodes that are connected by links. A node represents a switching system that is capable of originating, relaying, and receiving information. A link represents a transmission facility between a pair of nodes.
A performance constraint is a constraint on a directly perceivable measure of the quality of information transfer over a connection. It may be negotiable or non-negotiable among the network and the end-users. A negotiable performance constraint is specified in terms of a range of values bounded by a requested value and an acceptable value. A requested value is the most desirable performance level the user wish to have if resources are readily available. An acceptable value is the least desirable performance level the user would tolerate. A non-negotiable performance constraint is specified in terms of only an acceptable value.
A priority constraint is a condition imposed on the allocation of network resources to facilitate call preemption, the retrieval of network resources which have already been allocated to existing calls in order to accommodate new calls of greater importance. In the process, the existing calls are terminated prematurely. Priority constraints are implemented as link constraints that are dependent on connection states. Each call is assigned a set of priority numbers, each associated with a different connection state: establishment priority for the establishment state, re-establishment priority, for the re-establishment state, and retention priority for the information transfer state. A preemption is permitted only when the priority of the preempting call is higher than the priority of the call to be preempted. The appropriate priority number used for comparison is the one that is associated with the connection state of the given call.
A resource constraint is a restriction on the use of a given type of network resource with a particular set of characteristics. In conventional routing, resource constraints determine whether a given resource is acceptable or not for routing a call. They are predetermined and do not depend on the status of the network. Each resource attribute (e.g., transmission medium) is associated with a set of possible discrete attribute values (e.g., satellite, microwave). A resource constraint is specified in terms of a subset of this set of attribute values. A network resource is not acceptable for carrying a connection unless each of its resource attribute values belongs to the corresponding resource constraint set. A routing topology is determined by availability and acceptability of links with various resource attribute values. In the past, resource attribute values were specified with binary (include/exclude) choices. Today, the user demands multi-level preferential specification of resource attribute values to support policy-oriented routing. The user may specify each attribute value of a resource attribute in terms of one of the following resource preferences.
REQUIRED: At most one attribute value from a given attribute set may be configured "required". When an attribute value is configured so, only resources characterized by this attribute value may be used. PA1 PREFERRED: Resources characterized by attribute values configured "preferred" must be considered with priority over those characterized by attribute values configured otherwise, except for "required". PA1 DON'T.sub.-- CARE: Resources characterized by attribute values configured "don't.sub.13 care" may be considered, in addition to any configured "preferred", only when no acceptable path can be found otherwise. PA1 DON'T.sub.-- USE: Resources characterized by attribute values configured "don't.sub.-- use" must be avoided. At least one attribute value from a given attribute value set should be configured differently from "don't.sub.-- use".
In one method for implementing preferential resource constraints, user preferences for resources are translated into two sets of resource constraints, namely "requested resource constraints" and "acceptable resource constraints". A network resource is not acceptable for a connection unless each of its resource attribute values belongs to the corresponding resource constraint set. Steps for implementing the method using the algorithm for the translation of each resource attribute are shown in FIG. 1, numeral 100. In FIG. 1, X-I assigned to an attribute value means that the given attribute value is excluded (represented by X) from the set of requested resource constraints, but included (represented by I) in the set of acceptable resource constraints. I-I and X-X are to be similarly interpreted. For each resource attribute, the resource translation algorithm sequentially checks the numbers of attribute values specified "required" (102), "preferred" (104), and "don't.sub.-- care" (106). It detects an invalid configuration when there is more than one attribute value specified "required", or none specified other than "don't.sub.-- use" (108). If there is only one attribute value specified "required", it assigns I-I to the attribute value, and X-X to all other attribute values for the same attribute (110). If none is specified "required", and one or more are specified "preferred", it assigns I-I to each specified "preferred", X-I to any specified "don't.sub.13 care", and X-X to any specified "don't.sub.13 use" (112). If none is specified "required", none is specified "preferred", and one or more are specified "don't.sub.-- care", it assigns I-I to each specified "don't.sub.13 care", and X-X to any specified "don't.sub.13 use" (114). The algorithm ends either when an assignment is completed or when an invalid configuration is identified (115). An invalid configuration is a configuration wherein either more than one attribute value is specified "required" or all attribute value are specified "don't.sub.13 use".
End-users in a network independently specify their QOS requirements in terms of various QOS constraints. QOS consolidation is the merging of possibly different QOS constraints of the end-users to produce consistent sets of QOS constraints that are used for path selection and connection management. A QOS consolidation function takes two constraint parameters of a kind, and produces another of the same kind. It does not affect the format, e.g., unit, of the QOS constraints.
In the prior art, the performance constraints of the end-users are often consolidated by taking the intersection of their agreeable ranges of performance values and letting the intersection be the new agreeable range. If the agreeable ranges of the end-users do not overlap, the call must be rejected. Although a non-negotiable performance constraint does not have a requested value, the agreeable range is well defined, and the consolidation is basically the same. The o priority constraints of the end-users are often consolidated by simply taking the higher of the two priority levels for each of the three priority types. This consolidation function preserves meeting the condition that the retention priority level must not be lower than any of the other two connection priority levels.
However, there has been no solution suggested for handling preferential resource constraints. Thus, a method and a device for consolidating resource constraints are needed to resolve the potential difference in the resource preferences of the end-users.